home *** CD-ROM | disk | FTP | other *** search
/ PC/CD Gamer UK 120 / CD Gamer Issue 120 (March 2003) (Disc 2).ISO / mods / Q2_Codered / codeRED1_0.exe / Data1.cab / g_ctf.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-08-13  |  6.3 KB  |  193 lines

  1. /*
  2. Copyright (C) 1997-2001 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20.  
  21. #define CTF_VERSION            1.52
  22. #define CTF_VSTRING2(x) #x
  23. #define CTF_VSTRING(x) CTF_VSTRING2(x)
  24. #define CTF_STRING_VERSION  CTF_VSTRING(CTF_VERSION)
  25.  
  26. #define STAT_CTF_TEAM1_PIC            17
  27. #define STAT_CTF_TEAM1_CAPS            18
  28. #define STAT_CTF_TEAM2_PIC            19
  29. #define STAT_CTF_TEAM2_CAPS            20
  30. #define STAT_CTF_FLAG_PIC            21
  31. #define STAT_CTF_JOINED_TEAM1_PIC    22
  32. #define STAT_CTF_JOINED_TEAM2_PIC    23
  33. #define STAT_CTF_TEAM1_HEADER        24
  34. #define STAT_CTF_TEAM2_HEADER        25
  35. #define STAT_CTF_TECH                26
  36. #define STAT_CTF_ID_VIEW            27
  37. #define STAT_CTF_MATCH                28
  38. #define STAT_CTF_ID_VIEW_COLOR        29
  39. #define STAT_CTF_TEAMINFO            30
  40.  
  41. #define CONFIG_CTF_MATCH (CS_AIRACCEL-1)
  42. #define CONFIG_CTF_TEAMINFO    (CS_AIRACCEL-2)
  43.  
  44. typedef enum {
  45.     CTF_NOTEAM,
  46.     CTF_TEAM1,
  47.     CTF_TEAM2
  48. } ctfteam_t;
  49.  
  50. typedef enum {
  51.     CTF_GRAPPLE_STATE_FLY,
  52.     CTF_GRAPPLE_STATE_PULL,
  53.     CTF_GRAPPLE_STATE_HANG
  54. } ctfgrapplestate_t;
  55.  
  56. typedef struct ghost_s {
  57.     char netname[16];
  58.     int number;
  59.  
  60.     // stats
  61.     int deaths;
  62.     int kills;
  63.     int caps;
  64.     int basedef;
  65.     int carrierdef;
  66.  
  67.     int code; // ghost code
  68.     int team; // team
  69.     int score; // frags at time of disconnect
  70.     edict_t *ent;
  71. } ghost_t;
  72.  
  73. extern cvar_t *ctf;
  74.  
  75. #define CTF_TEAM1_SKIN "ctf_r"
  76. #define CTF_TEAM2_SKIN "ctf_b"
  77.  
  78. #define DF_CTF_FORCEJOIN    131072    
  79. #define DF_ARMOR_PROTECT    262144
  80. #define DF_CTF_NO_TECH      524288
  81.  
  82. #define CTF_CAPTURE_BONUS        15    // what you get for capture
  83. #define CTF_TEAM_BONUS            10    // what your team gets for capture
  84. #define CTF_RECOVERY_BONUS        1    // what you get for recovery
  85. #define CTF_FLAG_BONUS            0    // what you get for picking up enemy flag
  86. #define CTF_FRAG_CARRIER_BONUS    2    // what you get for fragging enemy flag carrier
  87. #define CTF_FLAG_RETURN_TIME    40    // seconds until auto return
  88.  
  89. #define CTF_CARRIER_DANGER_PROTECT_BONUS    2    // bonus for fraggin someone who has recently hurt your flag carrier
  90. #define CTF_CARRIER_PROTECT_BONUS            1    // bonus for fraggin someone while either you or your target are near your flag carrier
  91. #define CTF_FLAG_DEFENSE_BONUS                1    // bonus for fraggin someone while either you or your target are near your flag
  92. #define CTF_RETURN_FLAG_ASSIST_BONUS        1    // awarded for returning a flag that causes a capture to happen almost immediately
  93. #define CTF_FRAG_CARRIER_ASSIST_BONUS        2    // award for fragging a flag carrier if a capture happens almost immediately
  94.  
  95. #define CTF_TARGET_PROTECT_RADIUS            400    // the radius around an object being defended where a target will be worth extra frags
  96. #define CTF_ATTACKER_PROTECT_RADIUS            400    // the radius around an object being defended where an attacker will get extra frags when making kills
  97.  
  98. #define CTF_CARRIER_DANGER_PROTECT_TIMEOUT    8
  99. #define CTF_FRAG_CARRIER_ASSIST_TIMEOUT        10
  100. #define CTF_RETURN_FLAG_ASSIST_TIMEOUT        10
  101.  
  102. #define CTF_AUTO_FLAG_RETURN_TIMEOUT        30    // number of seconds before dropped flag auto-returns
  103.  
  104. #define CTF_TECH_TIMEOUT                    60  // seconds before techs spawn again
  105.  
  106. #define CTF_GRAPPLE_SPEED                    650 // speed of grapple in flight
  107. #define CTF_GRAPPLE_PULL_SPEED                650    // speed player is pulled at
  108.  
  109. void CTFInit(void);
  110. void CTFSpawn(void);
  111. void CTFPrecache(void);
  112.  
  113. void SP_info_player_team1(edict_t *self);
  114. void SP_info_player_team2(edict_t *self);
  115.  
  116. char *CTFTeamName(int team);
  117. char *CTFOtherTeamName(int team);
  118. void CTFAssignSkin(edict_t *ent, char *s);
  119. void CTFAssignTeam(gclient_t *who);
  120. edict_t *SelectCTFSpawnPoint (edict_t *ent);
  121. qboolean CTFPickup_Flag(edict_t *ent, edict_t *other);
  122. qboolean CTFDrop_Flag(edict_t *ent, gitem_t *item);
  123. void CTFEffects(edict_t *player);
  124. void CTFCalcScores(void);
  125. void SetCTFStats(edict_t *ent);
  126. void CTFDeadDropFlag(edict_t *self);
  127. void CTFScoreboardMessage (edict_t *ent, edict_t *killer);
  128. void CTFTeam_f (edict_t *ent);
  129. void CTFID_f (edict_t *ent);
  130. void CTFSay_Team(edict_t *who, char *msg);
  131. void CTFFlagSetup (edict_t *ent);
  132. void CTFResetFlag(int ctf_team);
  133. void CTFFragBonuses(edict_t *targ, edict_t *inflictor, edict_t *attacker);
  134. void CTFCheckHurtCarrier(edict_t *targ, edict_t *attacker);
  135.  
  136. // GRAPPLE
  137. void CTFWeapon_Grapple (edict_t *ent);
  138. void CTFPlayerResetGrapple(edict_t *ent);
  139. void CTFGrapplePull(edict_t *self);
  140. void CTFResetGrapple(edict_t *self);
  141.  
  142. //TECH
  143. gitem_t *CTFWhat_Tech(edict_t *ent);
  144. qboolean CTFPickup_Tech (edict_t *ent, edict_t *other);
  145. void CTFDrop_Tech(edict_t *ent, gitem_t *item);
  146. void CTFDeadDropTech(edict_t *ent);
  147. void CTFSetupTechSpawn(void);
  148. int CTFApplyResistance(edict_t *ent, int dmg);
  149. int CTFApplyStrength(edict_t *ent, int dmg);
  150. qboolean CTFApplyStrengthSound(edict_t *ent);
  151. qboolean CTFApplyHaste(edict_t *ent);
  152. void CTFApplyHasteSound(edict_t *ent);
  153. void CTFApplyRegeneration(edict_t *ent);
  154. qboolean CTFHasRegeneration(edict_t *ent);
  155. void CTFRespawnTech(edict_t *ent);
  156. void CTFResetTech(void);
  157.  
  158. void CTFOpenJoinMenu(edict_t *ent);
  159. qboolean CTFStartClient(edict_t *ent);
  160. void CTFVoteYes(edict_t *ent);
  161. void CTFVoteNo(edict_t *ent);
  162. void CTFReady(edict_t *ent);
  163. void CTFNotReady(edict_t *ent);
  164. qboolean CTFNextMap(void);
  165. qboolean CTFMatchSetup(void);
  166. qboolean CTFMatchOn(void);
  167. void CTFGhost(edict_t *ent);
  168. void CTFAdmin(edict_t *ent);
  169. qboolean CTFInMatch(void);
  170. void CTFStats(edict_t *ent);
  171. void CTFWarp(edict_t *ent);
  172. void CTFBoot(edict_t *ent);
  173. void CTFPlayerList(edict_t *ent);
  174.  
  175. qboolean CTFCheckRules(void);
  176.  
  177. void SP_misc_ctf_banner (edict_t *ent);
  178. void SP_misc_ctf_small_banner (edict_t *ent);
  179.  
  180. extern char *ctf_statusbar;
  181.  
  182. void UpdateChaseCam(edict_t *ent);
  183. void ChaseNext(edict_t *ent);
  184. void ChasePrev(edict_t *ent);
  185.  
  186. void CTFObserver(edict_t *ent);
  187.  
  188. void SP_trigger_teleport (edict_t *ent);
  189. void SP_info_teleport_destination (edict_t *ent);
  190.  
  191. void CTFSetPowerUpEffect(edict_t *ent, int def);
  192.  
  193.